//
//  Bx_dznEmptyDelegate.h
//  BiXuan
//
//  Created by ayi on 2018/7/27.
//  Copyright © 2018年 BSNL. All rights reserved.
//

/**

共用DZNEmptyDataSet                     只适用于scrollveiw tableview collectionview 的空页面处理
 当页面有数据 所有功能将不适用，
 
 
 且若当页面为scrollview 时，
 需手动设置 emptyAdminState 状态来完成动画到空页面过度，（若不需要动画过度，忽略设置，或设置成Custom_dznEmptyAdminState_EndFresh）
 
 - (void)willbeginStartAdmination;//设置当前状态为需要开始刷新
 - (void)stopbeginStartAdmination;//设置当前状态为不需要刷新
 
 并按需调用  reloadDznEmpty

*/


// 需要自定义过场动画时
@protocol CustomDznEmptyAnimationDelegate <NSObject>

@optional
- (UIView *)customViewForEmptyAnimation;

@end



/**
 callback 返回类型
 */
typedef NS_ENUM(NSUInteger, Custom_dznEmptyCallbackType) {
    Custom_dznEmptyCallbackType_Normal = 1,                        //正常状态下
    Custom_dznEmptyCallbackType_Refresh,                            //需要刷新状态
    
    Custom_dznEmptyCallbackType_AppError,                       //app错误
    Custom_dznEmptyCallbackType_Other,                          //其他错误
    
    Custom_dznEmptyCallbackType_NoNetwork,                  //网络错误情况
    Custom_dznEmptyCallbackType_ResponseError             //设置了response情况

};

//刷新状态     暂时两种状态 开始刷新，刷新结束，其他状态由Custom_dznEmptyCallbackType判断
typedef NS_ENUM(NSUInteger, Custom_dznEmptyAdminState) {
    Custom_dznEmptyAdminState_BeginFresh = 1,
    Custom_dznEmptyAdminState_EndFresh = 2
};




#import <Foundation/Foundation.h>

#import <DZNEmptyDataSet/UIScrollView+EmptyDataSet.h>

typedef void (^ dznEmptyDelegateBtnCallBack)(void);
typedef void (^ dznEmptyDelegateFreshCallBack)(void);
typedef void (^ dznEmptyDelegateOtherCallBack)(Custom_dznEmptyCallbackType status);

@interface Custom_dznEmptyDelegate : NSObject<DZNEmptyDataSetDelegate,DZNEmptyDataSetSource>

@property (nonatomic, strong) NSString *adminationStr;//动画需要显示的文字信息
@property (nonatomic, strong) NSString *emptyStr;//提示
@property (nonatomic, strong) NSString *emptyImg;//空的图片
@property (nonatomic, strong) NSString *emptyBtnTitle;//按钮文字
@property (nonatomic, strong) NSString *freshBtnTitle;//网络错误按钮事件文字
@property (nonatomic, strong) UIColor *backgroundColor;//背景色
@property (nonatomic, assign) CGFloat offset;//偏移

@property (nonatomic, assign) BOOL shouldReloadAuto;//改变值即刷新 默认yes
@property (nonatomic, assign) BOOL shouldScrollview;//是否能够滑动 默认no
@property (nonatomic, assign) BOOL shouldTapView;//是否能够点击视图回调
@property (nonatomic, assign) BOOL emptyVisable;//禁用
@property (nonatomic, weak) id<CustomDznEmptyAnimationDelegate > animdelegate;


@property (nonatomic, strong) BaseNetResponseModel *responseModel;//若从网络那边获取信息依赖注入设置

- (void)reloadDznEmpty;//重新刷新空页面
- (void)willbeginStartAdmination;//设置当前状态为需要开始刷新
- (void)stopbeginStartAdmination;//设置当前状态为不需要刷新

/**
 共用protocol

 @param emptyStr 标题
 @param emptyImg 图片名字
 @param emptyBtnTitle 按钮文字
 @param offset 偏移量
 @param scroll delegate 对象
 @return Bx_dznEmptyDelegate
 */
- (instancetype)initWithEmptyTitle:(NSString *)emptyStr
                        andImgName:(NSString *)emptyImg
                        andBtnName:(NSString *)emptyBtnTitle
                 andverticalOffset:(CGFloat )offset
                         andScroll:(UIScrollView *)scroll
                       andCallBack:(dznEmptyDelegateBtnCallBack)callback
                    andFreshCallBack:(dznEmptyDelegateFreshCallBack)freshcallback
                  andOtherCallBack:(dznEmptyDelegateOtherCallBack)othercallback;

@end


